<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				JS中的数组长度是可变的
			*/
			//定义一个指定长度的数组
			let arr = new Array(3);
			//动态赋值
			arr[0] = 1;
			arr[1] = 'a';//在JS中''和""都是字符串，在ES6中新增了一个``反引号，ESC键的下面
			//反引号，可以实现多行编辑
			arr[2] = `
				<div>
					第三个元素
				</div>
			`;
			// arr[2] = '<div>' +
			// '第三个元素' + 
			// '</div>'
			console.log(arr);
			//toString()
			console.log(arr.toString());
			//自定义实现toString()效果
			console.log(arr.join("-"));
			let arr1 = [];
			arr1[0] = 2;
			//concat就是将arr1数组的元素都添加到arr，组成一个新的数组
			console.log(arr.concat(arr1));
			//数组增删改
			/*增
				push(值...)：在底部添加。在编程中...表示可变类型，长度不固定，本质上就是一个数组
				unshift：在顶部添加
				splice(index, deleteCount, addItem...)：可以在指定的位置index添加addItem。deleteCount删除的个数
			  删
				delete arr[索引];删除指定索引的元素，如果没有索引，删除整个数组
				splice()
				pop
			  改
				splice()
			*/
		   arr.push("b", 3);
		   console.log("-------------------------------------");
		   console.log(arr.toString());
		   arr.unshift("c", 4);
		   console.log(arr.toString());
		   console.log(arr.splice(arr.length, 0, "d", 5));//在底部
		   console.log(arr.toString());
		   console.log(arr.length);
		   //删除
		   delete arr[1];//只是清除元素的值，但数组的长度不变
		   console.log(arr.toString());
		   console.log(arr.length);
		   console.log(arr.pop());//删除最后一个，并返回被删除的值
		   console.log(arr.toString());
		   console.log(arr.length);
		   console.log(arr.shift());//删除第一个，并返回被删除的值
		   console.log(arr.toString());
		   console.log(arr.length);
		   console.log(arr.splice(2, 1));//删除第一个，并返回被删除的值
		   console.log(arr.toString());
		   console.log(arr.length);
		   //改
		   console.log(arr.splice(2, 1, "haha"));
		   console.log(arr.toString());
		   console.log(arr.length);
		</script>
	</body>
</html>
